<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        字符串： 
            - 字符串是不可变的
            - 字符串其本质就是一个字符数组
            - "hello"  --> ["h", "e", "l", "l", "o"]
            - 字符串的方法：
               - length：返回字符串长度
                 字符串[索引] 获取指定位置的字符
                - charAt(index)：返回指定位置的字符
                - charCodeAt(index)：返回指定位置的字符的 Unicode 编码
                - concat(str1, str2, ...)：连接两个或多个字符串，返回连接后的字符串
                - fromCharCode(num1, num2, ...)：将 Unicode 编码转换为字符串
                - indexOf('str', startIndex)：返回指定字符串第一次出现的位置，从 startIndex 开始搜索
                - lastIndexOf('str', startIndex)：返回指定字符串最后一次出现的位置，从 startIndex 开始搜索
                - localeCompare('str')：比较两个字符串，返回一个数字，表示它们的排序关系
                - match(reg)：使用正则表达式匹配字符串，返回匹配结果数组
                - replace(reg, newStr)：使用正则表达式替换字符串，返回替换后的字符串
                - search(reg)：使用正则表达式搜索字符串，返回匹配结果的索引
                - split(separator, limit)：使用分隔符分割字符串，返回分割后的数组
                - substr(start, length)：返回指定位置的子字符串     
                - slice(start, end)：返回指定位置的子字符串
                - substring(start, end)：返回指定位置的子字符串 
                - toLocaleLowerCase()：转换为小写，根据本地语言环境
                - toLocaleUpperCase()：转换为大写，根据本地语言环境
                - includes('str') //      判断是否包含指定字符串，返回布尔值
                - repeat(num) //      重复字符串 num 次，返回重复后的字符串
                - startsWith('str') //  判断是否以指定字符串开头，返回布尔值
                - endsWith('str') //    判断是否以指定字符串结尾，返回布尔值
                - padStart(num, str) //  在字符串左侧填充指定字符，直到达到指定长度
                - padEnd(num, str) //    在字符串右侧填充指定字符，直到达到指定长度
                - toLowerCase() //      转换为小写
                - toUpperCase() //      转换为大写
                - trim() //             去除字符串两端的空白
                - trimStart() //        去除字符串左侧的空白
                - trimEnd() //          去除字符串右侧的空白

    */
    let str = "helloworld";
    console.log(str.length, "length");
    // console.log(str.search("llo1"), "search");
    // console.log(str.charAt(6), "charAt");
    let conStr = str.concat("!", "goodbye");
    console.log(conStr, "concat", str);
    console.log(str.indexOf("ld", 9), "indexOf");
    let sliceStr = str.slice(3, 4);
    console.log(sliceStr, "slice", str);
    // console.log(str.match(/hel/),'match');
    let substr = str.substr(2, 5);
    console.log(substr, "--", "substr", str);
    console.log(str.substring(3, 4), "substring", str);
    console.log(str.includes("ll"), "includes");
    console.log(str.repeat(2));
    console.log(str.startsWith("hello123"), "startsWith");
    console.log(str.endsWith("ld", "0-0-0l"));
    console.log(str.length, str.padStart(12, "0"), "padStart", str);
    console.log(str.padEnd(15, "fds"));
    let replaceStr = str.replace("llo", "fds");
    console.log(replaceStr, "replace", str);
    console.log(str.split("llo", 5));
    console.log(str.toUpperCase());
  </script>
</html>
